#ifndef __BMDOCUMENT_GROUP_H_FILE__
#define __BMDOCUMENT_GROUP_H_FILE__

#include <bmDocument/export.h>
#include <bmDocument/Element.h>
#include <vector>
#include <osg/ref_ptr>


namespace bmDoc
{
    class BMDOCUMENT_API Group : public Element
    {
        public:
            Group( const std::string &label = "group" );
            void addChild( Element *lpElement );
            void removeChild( Element *lpElement );
            void removeChild( unsigned int index, unsigned int count );

            Element *getChild( unsigned int index );

            unsigned int getChildIndex( Element *lpElement );
        protected:
            typedef std::vector< osg::ref_ptr<Element > > ElementVector;
            ElementVector _children;

    };
}


#endif // __BMDOCUMENT_GROUP_H_FILE__
